home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-04-14 | 74.1 KB | 2,242 lines |
- @Allgemeine Hinweise
- Dieses ist ein Ausschnitt aus dem Handbuch. Aus Platzgründen ist
- leider keine vollständige Beschreibung aller Funktionen möglich.
- Aus diesem Grund sind Querverweise und die Beispiele nicht enthalten.
- Die Realisierung dieser Funktion wird mit dem Hilfesystem ermöglicht,
- wobei gleichzeitig gezeigt werden kann, das dieses System auch große
- Datenmengen schnell handhaben kann. Die erforderlichen Codeanweisungen
- sind weniger als 10 Zeilen.
- Wir hoffen das aus dieser Übersicht die Arbeitsweise
- und das Konzept der KIWI C TOOLS V 3.20 hervorgeht, und Sie von
- der Leistungsfähigkeit der TOOLS überzeugen wird.
-
- @cls
- void cls();
-
- ■ Beschreibung:
-
- Die Funktion cls löscht den gesamten Bildschirminhalt mit dem
- Initialisierungszeichen das bei init_screen angegeben wurde.
- Damit werden auch alle bestehenden Fenster und der interne
- Bildschirm gelöscht. Die Fenster werden damit aber nicht gelöscht,
- deshalb sollte diese Funktion nur angewendet werden, wenn keine Fenster
- eröffnet sind.
-
- @get_cursor_size
- int get_cursor_size();
-
- ■ Beschreibung:
-
- Die Funktion get_cursor_size übergibt die Form des aktuellen
- Hardwarecursors.
-
- @get_screen_height
- int get_screen_height();
-
- ■ Beschreibung:
-
- Die Funktion get_screen_height übergibt die Höhe des
- verfügbaren Bildschirms in Zeilen. Die Höhe kann von 25- 88 Spalten
- variieren, je nach Art des verwendeten Bildschirmadapters und
- Bildschirmmodus.
-
- @get_screen_wide
- int get_screen_wide();
-
- ■ Beschreibung:
-
- Die Funktion get_screen_wide übergibt die Breite des verfügbaren
- Bildschirms in Spalten. Die Breite kann von 40-132 Spalten variieren,
- je nach Art des verwendeten Bildschirmadapters und des Bildschirmmodus.
-
- @init_color_table
- int init_color_table(nr,v,b,vi,bi);
-
- ■ Parameter:
- int nr; Nummer der Farbtabelle.
- unsigned char v,b,vi,bi; MACROS aus kiwi_inc.h
-
- ■ Beschreibung:
-
- Die Funktion init_color_table initialisiert eine Farbtabelle mit
- ausgewählten Farben. Das Fenstersubsystem unterstützt bis zu 5
- verschiedene Farbtabellen(beginnend bei 0), die durch die
- Funktion set_color_table angewählt werden. Die Farbtabelle 0
- wird bei dem Aufruf init_screen initialisiert und ist standardmäßig
- vorgewählt. Alle Ausgaben auf den Bildschirm erscheinen mit den
- in der aktuellen Farbtabelle ausgewählten Farbattributen.
- Ist ein Monochrombildschirm angeschlossen, werden alle Farbtabellen
- automatisch auf VWEIS,HSCHWARZ,VSCHWARZ,HWEIS limitiert.
-
- @init_screen
- int init_screen(v1,h1,v2,h2,ini,mode);
-
- ■ Parameter:
-
- unsigned char v1,h1,v2,h2; MACROS aus kiwi_inc.h. Definition für
- Standardfarbe und Inversdarstellung.
- unsigned char ini; Definition der Bildschirmhintergrundfläche.
- int mode; Festlegung des Bildschirmzugriffsmodus.
-
- ■ Beschreibung:
-
- Die Funktion init_screen initialisiert das gesamte Fenstersystem und
- muß vor jedem weiteren Befehl aus der KIWITOOLS Library aufgerufen
- werden, der eine Bildschirmmanipulation vornimmt (außer set_video_mode).
- Es wird der aktuelle Bildschirmmodus übernommen, sofern es ein
- Textmodus ist. Die Bildschirmaddresse und die Bildschirmgröße
- werden automatisch angepasst. Bei Verwendung des Monochrom-Modes 7
- werden die Farbangaben automatisch auf Schwarz und Weiß beschränkt.
- Wird ein Grafikmodus vorgefunden, erfolgt automatisch eine
- Umschaltung in den Modus 3. Wird ein Monochromadapter
- (Herkules oder MDA) vorgefunden, wird automatisch auf Modus 7 geschaltet.
-
- @reset_screen
- void reset_screen();
-
- ■ Beschreibung:
-
- Die Funktion reset_screen re-initialisiert das gesamte Bildschirmsystem
- und sollte als eine der letzten Anweisung eines Programmes aufgerufen
- werden, um eventuell noch allozierte Speicherbereiche freizugeben.
- Der Bildschirm wird dabei gelöscht.
-
- @screen_pos
- int screen_pos(x,y);
-
- ■ Parameter:
-
- int x,y; Bildschirmkoodinaten
-
- ■ Beschreibung:
-
- Die Funktion screen_pos berechnet aus den absoluten Koordinaten x,y,
- die entsprechende Position innerhalb des Bildschirm wenn dieser als
- eindimensionaler Vektor aufgefaßt wird. Diese Funktion ist bei
- einigen Ausgabefunktionen als Argument notwendig.
-
- @scroll_screen_unit
- int scroll_screen_unit(xa,ya,xe,ye,dir,zeich);
-
- ■ Parameter:
-
- int xa,ya,xe,ye; Koordinaten des Scrollbereichs
- int dir; Richtung in die gescrollt wird.
- MACRO aus kiwi_inc.h
- SCROLL_HOCH,SCROLL_RUNTER
- SCROLL_LINKS,SCROLL_RECHTS
- unsigned char zeich; Zeichen mit dem die freiwerdende
- Zeile bzw Spalte aufgefüllt wird
-
- ■ Beschreibung:
-
- Die Funktion scroll_screen_unit scrollt den Bildschirm um jeweils
- 1 Reihe oder Spalte in die durch dir angegebene Richtung. An der
- freiwerdenden Zeile oder Spalte werden Zeichen mit den
- gültigen Attributwerten erzeugt.
-
- @set_color
- int set_color(mode);
-
- ■ Parameter:
-
- int mode; NORM_COL für Normale Farbdarstellung
- INV_COL für Inverse Farbdarstellung
- FLIP für Umschalten der Farbe
-
- ■ Beschreibung:
-
- Die Funktion set_color schaltet die Standardfarbattribute von
- Normaldarstellung auf Inversdarstellung oder zurück. Jede
- Farbtabelle besteht aus einer Vorder- und Hintergrundfarbe für
- Normal und Inversdarstellung(insgesamt also 4 Farben).
- Mit dieser Funktion können nun die Standardattribute einfach zwischen
- der Normal un der Inversdarstellung gewechselt werden.
- Alle nachfolgenden Ausgaben, die Standardattribute benutzen,
- werden beeinflußt, jedoch keine bereits bestehenden Ausgaben.
-
- @set_color_table
- int set_color_table(nr);
-
- ■ Parameter:
-
- int nr; Nummer der Farbtabelle.
-
- ■ Beschreibung:
-
- Die Funktion set_color_table wählt eine zuvor initialisierte
- Farbtabelle aus, und setzt die dort definierten Farbattribute
- als die aktuellen Standardattribute ein. Das Fenstersubsystem
- unterstützt bis zu 5 Farbtabellen (0-4). Die Farbtabelle 0 wird
- bei dem Aufruf init_screen initialisiert. Alle Ausgaben auf dem
- Bildschirm, bei denen Standardattribute benutzten werden, sind durch
- diesen Aufruf beeinflußt. Bereits bestehende Ausgaben werden nicht
- beeinflußt. Wenn die gewählte Farbtabelle nicht definiert wurde,
- wird der Funktionsaufruf ignoriert.
-
- @set_cursor_shape
- void set_cursor_shape(start,end);
-
- ■ Parameter:
-
- int start,end; Start, bzw Endzeile des Cursors
-
- ■ Beschreibung:
-
- Die Funktion set_cursor_shape schaltet den normalen Hardwarecursor so um,
- daß die Darstellung von Start - Endzeile geht. Der Cursor kann bei
- Monochrom von 1-13 und bei Farbadaptern von 1-7 gehen.
-
- @set_cursor_size
- int set_cursor_size(mode);
-
- ■ Parameter:
-
- int mode; MACRO aus kiwi_inc.h
-
- ■ Beschreibung:
-
- Die Funktion set_cursor_size schaltet den normalen
- Hardwarecursor auf MODE. Dabei ist der Cursor in jedem Fall
- vorhanden, er wird nur eventuell nicht dargestellt.
-
- @set_output_mode
- int set_output_mode(mode);
-
- ■ Parameter:
-
- int mode; MACRO aus kiwi_inc.h
-
- ■ Beschreibung:
-
- Die Funktion set_output_mode schaltet die Art des Bildschirmzugriffs
- um. Zur Verfügung stehen BIOS und DIREKT. BIOS Mode ist langsamer
- als DIREKT Mode, da das BIOS dabei benutzt wird. Der Direktzugriff
- ist der schnellstmögliche Zugriff auf den Bildschirm, kann aber in
- manchen Fällen zu Problemen führen. Der Zugriffsmode kann
- jederzeit geändert werden.
-
- @set_screen_size
- void set_screen_size(x,y);
-
- ■ Parameter:
-
- int x,y; Gewünschte Bildschirmgröße SpaltenxZeilen
-
- ■ Beschreibung:
-
- Die Funktion set_screen_size setzt die Bildschirmgröße auf X * Y Zeichen.
- Diese Funktion sollte im Zusammenhang mit set_video_mode aufgerufen werden,
- um den interen und den pyhsikalischen Bildschirm auf die gewünschte Größe
- zu setzen. Diese Funktion kann auch während der Laufzeit aufgerufen
- werden. Um den Bildschirm wiederherzustellen (set_video_mode löscht
- den physikalischen Bildschirm) sollte die Funktion refresh_screen
- benutzt werden. Eventuell muß der Mausbereich ebenfalls angepasst werden.
-
- @compute_window_position
- void compute_window_position(x,y,breite,hoehe,xa,ya,xe,ye);
-
- ■ Parameter:
-
- int x,y; Koordinaten der linken oberen Ecke des Fensters
- int breite; Gewünschte Fensterbreite
- int hoehe; Gewünschte Fensterhöhe
- int *xa,*ya; Berechnete Koordinaten der linken oberen Ecke
- int *xe,*ye; Berechnete Koordinaten der rechten unteren Ecke
-
- ■ Beschreibung:
-
- Die Funktion compute_window_position berechnet die Eckkordinaten
- eines Fensters durch Angabe der linken oberen Ecke, der Breite und
- der Höhe des Fensters. Dabei werden die Koordinaten auf die
- Bildschirmgröße angepasst. Für x,y kann auch eines der MACROS AL,AM,AR
- angegeben werden, wodurch die Fensterposition der jeweiligen Achse
- linksbündig, mittig oder rechtsbündig ausgerichtet wird.
-
- @get_window_edge
- int get_window_edge(win,xa,ya,xe,ye);
-
- ■ Parameter:
-
- WINDOW win; Fensterbezeichner auf das Fenster.
- int *xa,*ya,*xe,*ye; Grenzen des beschreibbaren Fensterbereichs.
-
- ■ Beschreibung:
-
- Die Funktion get_window_edge übergibt die obere linke und untere rechte
- Ecke des beschreibbaren Fensterbereichs des Fensters win.
- Da bei Erstellung die angegeben Fenstergrenzen überprüft und
- gegebenenfalls korrigiert werden, ob Sie innerhalb des Bildschirms
- liegen, ist dieses die einzige zuverlässige Methode die realen
- Grenzen eines Fensters zu erfassen. Ist das Fenster nicht vorhanden
- werden die Bildschirmgrenzen übergeben.
-
- @get_last_window
- WINDOW get_last_window();
-
- ■ Beschreibung:
-
- Das Funktion get_last_window gibt den Fensterbezeichner auf das zuletzt
- erstellte, bzw das oberste Window zurück. Wenn Sie mit dem
- Windowmanager arbeiten, ist dieses die einzige Möglichkeit, das
- aktuelle oberste Window zu erfassen.
-
- @get_linked_screen
- VSCREEN get_linked_screen(win);
-
- ■ Parameter:
-
- WINDOW win; Fensterbezeichner auf das Fenster.
-
- ■ Beschreibung:
-
- Das Funktion get_linked_screen gibt den gelinkten virtuellen Bildschirm
- des Windows win zurück. Dieser Bezeichner kann benutzt werden,
- um z.B. weiter Windows an den Screen zu linken.
-
- @init_window
- int init_window(nr);
-
- ■ Parameter:
-
- int nr; Anzahl Fenster die geöffnet werden können.
-
- ■ Beschreibung:
-
- Die Funktion init_window initialisiert das Fenstersystem und sollte
- in die Funktion init_tools eingebunden werden. Durch nr geben Sie an,
- wieviele Fenster gleichzeitig eröffnet werden können.
- Die maximale Anzahl der Fenster hängt von dem verfügbaren Speicherplatz
- im Far Heap Speicher ab. Da die komplette Fensterverwaltung und
- Speicherung in diesen Bereich verlagert ist, tritt keine
- Beeinträchtigung des Speicherplatzes im aktuellen Speichersegment auf.
- (wichtig bei Small Memory Modell Programmen). Ist nr kleiner als 5 wird
- Platz für 5 Fenster bereitgestellt. Dieser Wert ist während der Laufzeit
- eines Programms nicht zu ändern, sollte daher nicht zu klein, aber
- auch nicht zu groß gewählt werden.
-
- @init_window_manager
- int init_window_manger();
-
- ■ Beschreibung:
-
- Die Funktion init_window_manager initialisiert den Windowmanger und
- muß vor Benutzung desselben aufgerufen werden. Die Benutzung des
- Windowmanager muß nicht durch eine reset Funktion abgemeldet werden.
- Diese Funktion sollte in die Funktion init_tools aufgenommen werden.
-
- @init_virtuell_screen
- int init_virtuell_screen(nr);
-
- ■ Parameter:
-
- int nr; Anzahl Screen die geöffnet werden können.
-
- ■ Beschreibung:
-
- Die Funktion init_virtuell_screen initialisiert das Screenssystem und
- sollte in die Funktion init_tools eingebunden werden.
- Durch nr geben Sie an, wieviele virtuell Screens gleichzeitig eröffnet
- werden können. Die maximale Anzahl der Screens hängt von dem
- verfügbaren Speicherplatz im Far Heap Speicher ab. Da die komplette
- Screenverwaltung und Speicherung in diesen Bereich verlagert ist,
- tritt keine Beeinträchtigung des Speicherplatzes im aktuellen
- Speichersegment auf.(wichtig bei Small Memory Modell Programmen).
- Die Anzahl ist während der Laufzeit eines Programms nicht zu ändern,
- sollte daher nicht zu klein, aber auch nicht zu groß gewählt werden.
-
- @link_virtuell_screen
- int link_virtuell_screen(vs,win,xoff,yoff);
-
- ■ Parameter:
-
- VSCREEN vs; Bezeichner des virtuellen Screen
- WINDOW win; Bezeichner des Windows
- unsigned int xoff,yoff; x,y Offset der linken oberen Bezugskanten.
-
- ■ Beschreibung:
-
- Die Funktion link_virtuell_screen erzeugt eine Verbindung zwischen einem
- Window und einem virtuellen Screen. Ist das Window größer als der
- virtuelle Screen wird das Window vorher entsprechend verkleinert. Durch
- diese Funktion wird ein statisches Window zu einem dynamischen Window,
- es erhält alle SAA Eigenschaften, wie Scrollbalken und Manipulationspunkte
- und kann jederzeit mit dem Windowmanager manipuliert werden. Die
- xoff, yoff Werte geben den Abstand der linken oberen Kanten des
- Screens und des Windows an.
-
- @load_window
- int load_window(pfad);
-
- ■ Parameter:
-
- char *pfad; Dateipfad der Maske
-
- ■ Beschreibung:
-
- Die Funktion load_window lädt eine Windowmaske, die mit dem
- Screenmanager, oder der Funktion store_window erzeugt wurde, von
- pfad und zeigt diese am Bildschirm an. Sämtlische Informationen
- über Typ Form und Inhalt enthält dabei die Maske, so daß keine
- zusätzlichen Informationen angegeben werden müssen. Dabei kann das
- Window statisch, oder dynamisch sein, Zeichen enthalten oder Ein.- bzw
- Ausgabepositionen definieren.
-
- @move_window
- int move_window(win,anz,dir);
-
- ■ Parameter:
-
- WINDOW win; Fensterbezeichner auf das Fenster.
- int anz; Anzahl Spalten,bzw. Zeilen um die das
- Fenster zu bewegen ist.
- int dir; Richtungsangabe durch MACRO aus kiwi_inc.h.
-
- ■ Beschreibung:
-
- Die Funktion move_window bewegt das Fenster win um anz Zeilen, bzw
- Spalten in die durch dir angebene Richtung. Das Fenster win muß ein
- top window sein, das heißt es darf nicht überlappt werden.
- Wird es denoch überlappt, wird das Fenster win zuerst zum top_window
- geändert. An den Bildschirmgrenzen wird die Bewegung gestoppt und
- der Funktionsaufruf ignoriert.
-
- @open_virtuell_screen
- VSCREEN open_virtuell_screen(xsize,ysize);
-
- ■ Parameter:
-
- int xsize,ysize; Größe des zu erzeugenden virtuellen Bildschirms
-
- ■ Beschreibung:
-
- Die Funktion open_virtuell_screen öffnet einen virtuellen Bildschirm
- der Größe xsize*ysize. Dieser Bildschirm müß zu einem Window
- gelinkt werden, um Manipulationen vornehmen zu können.
-
- @open_vs_window
- WINDOW open_vs_window(name,xa,ya,xe,ye,rand,xsize,ysize);
-
- ■ Parameter:
-
- char *name; Fensterüberschrift.
- int xa,ya; Koordinatenpaar links oben.
- int xe,ye; Koordinatenpaar rechts unten.
- int rand; Fensterrand, siehe open_window.
- int xsize,ysize; Größe des zu erzeugenden virtuellen Bildschirms
-
- ■ Beschreibung:
-
- Die Funktion open_vs_window öffnet ein dynamisches Window am Bildschirm.
- Diese Funktion arbeites analog zu open_window, daher siehe weiter
- Informationen dort. Im Gegensatz zu open_window erzeugt diese
- Funktion ein virtuellen Bildschirm der Größe xsize*ysize und linkt
- diesen zu dem Window. Es ist direkt ein dynamischen Window. Wird dieses
- Window gelöscht, so wird auch der virtuelle Screen gelöscht.
-
- @open_window
- WINDOW open_window(name,xa,ya,xe,ye,rand);
-
- ■ Parameter:
-
- char *name; Fensterüberschrift.
- int xa,ya; Koordinatenpaar links oben.Die erste Position ist 1,1
- int xe,ye; Koordinatenpaar rechts unten.
- Die letzte Position ist bei einer 80x25 Darstellung 80,25.
- int rand; MACRO aus kiwi_inc.h. Festlegung des Fensterrand.
-
- ■ Beschreibung:
-
- Die Funktion open_window öffnet ein Fenster am Bildschirm. Die
- Zeichenkette name wird mittig am oberen Rand eingeblendet,wenn das
- Fenster mit Rand erstellt wird. Die angegeben Koordinaten sind
- relativ zum Bildschirm und werden auf die geltenden Regeln hin
- überprüft und gegebenenfalls korrigiert. Das Fenster wird mit den
- zur Erstellungszeit gültigen Attributwerten erzeugt.
- Als Besonderheit gibt es die möglichkeit das Fenster ausgerichtet
- am Bildschirm zu erstellen. Dazu kann als xa oder ya eines der
- MACROS AL,AM,AR eingesetzt werden. Diese bedeuten Ausrichtung
- Links, Mitte, Rechts. Bei Benutzung als ya gilt AL als Ausrichtung
- Oben und AR als Ausrichtung Unten. Wenn eines der Anfangskoordinaten
- als MACRO aufgerufen wird, gilt der jeweilige Endwert als Abstand
- oder Breite, bzw Höhe des Fensters.
-
- @print_mask
- int print_mask(win,start,"Format",arg1,arg2,...);
-
- ■ Parameter:
-
- WINDOW win; Fensterbezeichner auf das Fenster.
- int start; Startposition innerhalb der Maske
- const char *format; Formatanweisungen für die Ausgabe
- arg1,arg2,... Variabale Anzahl Argumente
-
- ■ Beschreibung:
-
- Die Funktion print_mask ermöglicht die formatierte Ausgabe von Daten
- in einer Maske. Die Verfahrensweise ist ähnlich der Standardfunktion
- printf. Wie diese erlaubt auch print_mask eine variable Argumentenanzahl.
- In einer Maske kann durch die Zeichen ACSII 64 oder ASCCI 15
- eine Ein- Ausgabeposition definiert werden, wobei ASCII 15 eine
- inverse Darstellung erzwingt. Diese Positionen werden von oben nach
- unten und links nach rechts innerhalb der Maske durchnummeriert. Diese
- Funktion beginnt ab Position start mit der Ausgabe und erhöht die
- Position jeweils um 1. Wenn die Datentypen innerhalb der Maske definiert
- wurden, muß für format ein "x" angegeben werden. Wenn format
- ungleich "x" wird der Formatstring als bindendes Format akzeptiert und
- entsprechend ausgewertet. Ein Formatstring ungleich "x" überschreibt
- alle Maskenformatangaben. In dem Formatstring können alle innerhalb der
- TOOLS definierten Datentypen angegeben werden. Dazu muß für jedes Argument
- ein Eintrag innerhalb des Formatstrings an der jeweiligen Position vorhanden
- sein. Dieser Formatstring orientiert sich ebenfalls an printf und hat
- folgenden Aufbau.
- %[FORMAT]typ Zulässig sind folgende Formate bei folgenden Typen
-
- Strings %s für Ausgabe der Länge des Strings
- %25s für Ausgabe von 25 Zeichen.
- Character %c Ausgabe eines Characters (kein Format zulässig)
- Integer %d Ausgabe Integer Standardlänge 6 Zeichen linksbündig
- %8rd Ausgabe 8 Stellen rechstbündig
- Long %l Ausgabe Long Standardlänge 10 Zeichen linksbündig
- %r12l Ausgabe 12 Stellen rechstbündig
- Float %f Ausgabe Float Standard 10 Stellen 4 NK linksbündig
- %r8.3f Ausgabe Float 8 Stellen 3 Nk rechtsbündig
- Datum %M Ausgabe Datum (Kein Format zulässig)
- TIME %T Ausgabe Zeit Standardformat bis Sekunden
- %h Nur Stunden
- %m Bis Minuten
- %z Bis Hunderstel
-
-
- Beachten Sie, DATUM und ZEIT müssen als Pointer auf den Wert übergeben
- werden, alle anderen Daten müssen als Werte übergeben werden, dort ist
- keine Call by reference möglich. Sind mehr Argumente als Formate
- vorhanden, werden die restlichen Argumente ignoriert. Sind weniger
- Position in der Maske vorhanden, als Argumente erfolgt die Ausgabe bei
- Position 1,1. Stellen Sie sicher, daß die Anzahl Formate und die
- Anzahl Argumente und deren Typen übereinstimmen. Sie können die
- Maske beliebig ändern, wenn Sie die Positionen in der Reihenfolge
- verändern, müssen Sie auch den entsprechen print_mask Aufruf ändern,
- anderfalls erfolgt die Ausgabe an falschen Stellen.
-
- @reset_window
- void reset_window();
-
- ■ Beschreibung:
-
- Die Funktion reset_window schließt die Benutzung des Fenstersysstem ab.
- Eventuell noch alloziierte Speicherbereiche werden dabei freigegeben.
- Diese Funktion sollte in die Funktion init_tools eingebunden werden.
-
- @reset_virtuell_screen
- void reset_virtuell_screen();
-
- ■ Beschreibung:
-
- Die Funktion reset_virtuell_screen schließt die Benutzung des
- Screensysstems ab. Eventuell noch alloziierte Speicherbereiche werden
- dabei freigegeben. Diese Funktion sollte in die Funktion init_tools
- eingebunden werden.
-
- @scanf_mask
- int scanf_mask(win,start,"Format",arg1,arg2,...);
-
- ■ Parameter:
-
- WINDOW win; Fensterbezeichner auf das Fenster.
- int start; Startposition innerhalb der Maske
- const char *format; Formatanweisungen für die Ausgabe
- arg1,arg2,... Variabale Anzahl Argumente
-
- ■ Beschreibung:
-
- Die Funktion scanf_mask ermöglicht die formatierte Eingabe von Daten
- in einer Maske. Die Verfahrensweise ist ähnlich der Standardfunktion
- scanf. Wie diese erlaubt auch scanf_mask eine variable
- Argumentenanzahl. In einer Maske kann durch die Zeichen ACSII 64
- oder ASCCI 15 eine Ein- Ausgabeposition definiert werden,
- wobei ASCII 15 eine inverse Darstellung erzwingt. Diese Positionen
- werden von oben nach unten und links nach rechts innerhalb der Maske
- durchnummeriert. Diese Funktion beginnt ab Position start mit der
- Ausgabe und erhöht die Position jeweils um 1. Wenn die Datentypen
- innerhalb der Maske definiert wurden, muß für format ein "x" angegeben
- werden. Wenn Format ungleich "x" wird der Formatstring als bindendes
- Format akzeptiert und entsprechend ausgewertet. Ein Formatstring
- ungleich "x" überschreibt alle Maskenformatangaben. In dem
- Formatstring können alle innerhalb der TOOLS definierten Datentypen
- angegeben werden. Dazu muß für jedes Argument ein Eintrag
- innerhalb des Formatstrings an der jeweiligen Position vorhanden sein.
- Dieser Formatstring orientiert sich ebenfalls an scanff und ist im Aufbau der Funktion print_mask
- angeglichen.
-
- Beachten Sie, das alle Argumente Pointer auf den jeweiligen Wert sein
- müssen. Sind mehr Argumente als Formate vorhanden, werden die
- restlichen Argumente ignoriert. Sind weniger Position in der Maske
- vorhanden, als Argumente erfolgt die Ausgabe bei Position 1,1.
- Stellen Sie sicher, daß die Anzahl Formate und die Anzahl Argumente
- und deren Typen übereinstimmen. Sie können die Maske beliebig
- ändern, wenn Sie die Positionen in der Reihenfolge verändern,
- müssen Sie auch den entsprechen print_mask Aufruf ändern, anderfalls
- erfolgt die Eingabe in falscher Reihenfolge. Diese Funktion zeigt zuerst
- alle Daten in den jeweiligen Feldern vor der Eingabe. Während der
- Eingabe können Sie die mittels den Cursortasten oder der Maus frei
- in der Maske hin und herspringen. Die letzte Eingabe beendet die Funktion,
- Escape bricht die Eingabe an beliebiger Stelle ab.
-
- @set_window_color
- int set_window_color(win,mode);
-
- ■ Parameter:
-
- WINDOW win; Fensterbezeichner auf das Fenster
- int mode; NORM_COL für Normale Farbdarstellung
- INV_COL für Inverse Farbdarstellung
- FLIP für Umschalten der Farbe
-
- ■ Beschreibung:
-
- Die Funktion set_window_color schaltet die Fensterfarbattribute von
- Normal-darstellung auf Inversdarstellung und zurück. Jedes Fenster
- erbt bei seiner Erzeugung die aktuellen Standardattribute. Soll die
- Ausgabe im Fenster invers dargestellt werden, muss die
- Fensterausgabeattribute mit dieser Funktion umgestellt werden. Alle
- nachfolgenden Ausgaben, die die Fensterattribute benutzen werden
- beeinflußt, jedoch keine bereits bestehenden Ausgaben.
-
- @set_window_manager
- int set_window_manager(mode);
-
- ■ Parameter:
-
- int mode; ON schaltet den Windowmanager ein
- OFF schaltet den Windowmanager aus
-
- ■ Beschreibung:
-
- Die Funktion set_window_manager schaltet den Windowmanager aus oder ein.
- Der Windowmanager ist eine Hintergrundfunktion, die es dem Benutzer
- jederzeit erlaubt, alle dynamischen Windows zu manipulieren.
- Wird der Windowmanager ausgeschaltet, so hat das keinen Einfluß auf
- die aktuelle Bildschirmdarstellung.
-
- @set_window_output_attribut
- int set_window_output_attribut(win,mode);
-
- ■ Parameter:
-
- WINDOW win; Fensterbezeichner auf das Fenster.
- int mode; Ausgabemodus, MACRO aus kiwi_inc.h
- STANDARD_ATTRIBUT, FENSTER_ATTRIBUT
-
- ■ Beschreibung:
-
- Die Funktion set_window_output_attribut setzt das Ausgabeattribut
- innerhalb des Fensters win entweder auf die Standardwerte, oder auf
- die Attributwerte des Fensters. Bei Erstellung des Fensters win wird
- der aktuelle gültige Attributwert für dieses Fenster übernommen, und
- benutzt. Wird später die aktuelle Attributbelegung geändert, werden
- trotzdem alle Ausgaben innerhalb des Fenster nach wie vor in der
- alten Attributbelegung durchgeführt, bis mit dieser Funktion die
- Attributentnahme geändert wird.
-
- @strip_shadow
- int strip_shadow(win);
-
- ■ Parameter:
-
- WINDOW win; Fensterbezeichner auf das Fenster
-
- ■ Beschreibung:
-
- Die Funktion strip_shadow löscht den Schatten eines bestehendes
- Fenster win.
-
- @unlink_virtuell_screen
- int unlink_virtuell_screen(win);
-
- ■ Parameter:
-
- WINDOW win; Fensterbezeichner auf das Fenster.
-
- ■ Beschreibung:
-
- Die Funktion unlink_virtuell_screen löst die Verbindung eines
- dynamischen Windows mit dem hinterlegten virtuell Screen. Das
- Windows wird zum statischen Window und verliert alle SAA Eigenschaften.
- Der virtuelle Bildschirm wird mit dieser Aktion nicht gelöscht.
-
- @wlocate
- void wlocate(win,x,y);
-
- ■ Parameter:
-
- WINDOW win; Fensterbezeichner auf das Fenster.
- int x,y; Bildschirmkoordinaten
-
- ■ Beschreibung:
-
- Die Funktion wlocate positioniert den Fenstercursor auf die Position
- x,y. innerhalb des Ausgabefensters win. Ist das Fenster win nicht
- vorhanden, wird die Funktion locate aufgerufen.
- Die Koordinaten 1,1 gelten für die oberste linke Bildschirmposition
- innerhalb des Ausgabefensters. Liegt die geforderte Position nicht
- innerhalb des Ausgabefensters, wird der Cursor nicht dargestellt.
-
- @zoom_window
- int zoom_window(win,xa,ya,xe,ye);
-
- ■ Parameter:
-
- WINDOW win; Fensterbezeichner auf das Fenster.
- int xa,ya,xe,ye; Neue Koordinaten des Fensters win.
- int mode; Veränderungsmodus des Fensterinhalts.
- FIX Inhalt bleibt an Position
- ANPASSEN Inhalt wird mit linker oberer Ecke bewegt.
-
- ■ Beschreibung:
-
- Die Funktion zoom_window verändert die Größe des Fensters win.
- Die Eckkoordinaten werden auf die neuen Koordinaten verschoben.
- Der Fensterinhalt wird entweder auf der jeweiligen Position gehalten,
- oder aber entsprechend der Bewegung der linken oberen Ecke verschoben.
- Wenn die neuen Koordinaten eine Überlappung mit den alten Koordinaten
- ergeben, wird die Ausführung verweigert. Ist das Fenster nicht das
- top window, wird es vorher dazu herhoben.
-
- @box
- int box(win,xa,ya,xe,ye,typ);
-
- ■ Parameter:
-
- WINDOW win; Fensterbezeichner auf Das Fenster.
- int xa,ya,xe,ye; Eckkoordinaten des Kastens
- int typ; Linientyp des Kasten. MACRO aus kiwi_inc.h.
- EINFACH erzeugt │ Linientyp.
- DOPPELT erzeugt ║ Linientyp.
-
- ■ Beschreibung:
-
- Die Funktion box erzeugt einen rechteckigen Kasten im Fenster win der
- durch die Eckkordinaten und den Linientyp definiert ist. Ist win=0
- wird der komplette Bildschirm benutzt. Überschreiten die Koordinaten
- die Fenster werden die Linien gekapt. Das Attribut der Linie wird
- den zur Zeit gültigen Attributwerten entnommen.
-
- @display_array
- int display_array(buffer,count,size,x,y);
-
- ■ Parameter:
-
- char *buffer; Zeichenkette in der die Begriffe gespeichert sind
- int count; Anzahl gespeicherter Begriffe
- int size; Breite eines einzelnen Begriffs
- int x,y; Koordinaten der linken oberen Ecke des Auswahlfensters
-
- ■ Beschreibung:
-
- Die Funktion display_array ermöglicht die Anzeige verschiedener
- gleichlanger Begriffe oder Objekte in einem Fenster. Die Zeichenkette
- buffer enthält count Begriffe von size Länge. Alle diese Begriffe
- werden in einem Fenster zentral am Bildschirm eingeblendet. Durch
- ESCAPE oder die rechte Maustaste wird der Anzeigevorgang abgebrochen.
- Die Größe des Fensters variiert mit der Anzahl der erfassten Dateien.
- An der rechten Fensterseite wird ein kleiner Balken eingeblendet, der
- die Lage der angezeigten Begriffe innerhalb buffer anzeigt.
- Die Koordinaten x,y bestimmen die linke obere Ecke des
- Auswahlfensters, es sind aber auch die MACROS AL,AM,AR
- für x und y zugelassen. Diese zentrieren das Fenster am Bildschirm
- entweder Rechtsbündig, Mittig oder Linksbündig, bzw Oben oder Unten.
-
- @display_char
- int display_char(ch,anzahl,pos);
-
- ■ Parameter:
-
- unsigned char ch; Auszugebendes Zeichen.
- int anzahl; Anzahl wie oft Zeichen ausgegeben wird
- int pos; Position der ersten Ausgabe. Es sollte die Funktion
- screen_pos(x,y)verwendet werden, um
- die Position aus X,Y Koordinaten zu berechnen.
-
- ■ Beschreibung:
-
- Die Funktion display_char schreibt ab der Stelle pos, bzw (screen_pos(x,y))
- anzahl Zeichen ch auf den Bildschirm. Bei der Ausgabe wird die zur Zeit
- gültige Attributbelegung für Vorder- und Hintergrund übernommen.
- Diese Funktion benutzt den ganzen Bildschirm, und nicht einzelne Fenster.
-
- @display_char2
- int display_char2(ch,anzahl,pos);
-
- ■ Parameter:
-
- unsigned short ch; Auszugebendes Zeichen mit Attribut.
- int anzahl; Angabe wie oft dieses Zeichen ausgegeben werden soll.
- int pos; Position der ersten Ausgabe.
-
- ■ Beschreibung:
-
- Die Funktion display_char2 schreibt ab der Stelle pos, bzw
- (screen_pos(x,y)) anzahl Zeichen ch auf den Bildschirm. Im Gegensatz
- zu display_char erwartet display_char2 als Argument ch ein Zeichen
- mit Attribut verknüpft. Dieses kann durch ch=(attribut << 8 ) | character
- erreicht werden. Diese Funktion benutzt den ganzen Bildschirm,
- und nicht einzelne Fenster.
- @display_char3
- int display_char3(ch,win,x,y);
-
- ■ Parameter:
-
- unsigned char ch; Auszugebendes Zeichen.
- WINDOW win; Fensterbezeichner auf Das Fenster.
- int x,y; Ausgabeposition innerhalb des Fensters
-
- ■ Beschreibung:
-
- Die Funktion display_char3 schreibt ab an der Stelle x,y innerhalb
- des Ausgabefenster win, das Zeichen ch auf den Bildschirm. Bei der
- Ausgabe wird die zur Zeit gültige Attributbelegung für Vorder- und
- Hintergrund übernommen. Liegt die Ausgabeposition außerhalb der
- Fenstergrenzen wird der Aufruf ignoriert. Wird win =0 angegeben,
- wird der gesamte Bildschirm als Ausgabefenster benutzt und
- keine Überprüfung auf Überlappende Fenster durchgeführt.
- Diese Funktion arbeitet wie display_char, benutzt aber Bildschirmfenster
- anstatt den Bildschirm.
-
- @display_char4
- int display_char4(ch,win,x,y);
-
- ■ Parameter:
-
- unsigned short ch; Auszugebendes Zeichen mit Attribut.
- WINDOW win; Fensterbezeichner auf das Fenster
- int x,y; Ausgabeposition innerhalb des Fensters
-
- ■ Beschreibung:
-
- Die Funktion display_char4 schreibt ab an der Stelle x,y innerhalb
- des Ausgabefenster win, das Zeichen ch auf den Bildschirm. Im Gegensatz
- zu display_char3 erwartet display_char4 als Argument ch ein Zeichen
- mit Attribut verknüpft. Liegt die Ausgabeposition außerhalb der
- Fenstergrenzen wird der Aufruf ignoriert. Wird win =0 angegeben,
- wird der gesamte Bildschirm als Ausgabefenster benutzt und keine
- Überprüfung auf Überlappende Fenster durchgeführt. Diese Funktion
- arbeitet wie display_char2 ,benutzt aber Bildschirmfenster zur Ausgabe.
-
- @display_date
- int display_date(date,win,x,y);
-
- ■ Parameter:
-
- struct DATUM *date; Auszugebendes Datum;
- WINDOW win; Fensterbezeicher auf das Fenster.
- int x,y; Ausgabeposition innerhalb des Fensters.
-
- ■ Beschreibung:
-
- Die Funktion display_date gibt das Datum date innerhalb des Fensters
- win aus. Dabei erfolgt die Angabe der Position relativ zur linken
- oberen Ecke des Fensters. Die Ausgabe erfolgt nur innerhalb des
- angegebenen Fensters, wird also bei Überschreitung abgeschnitten.
- Die Struktur DATUM wird in kiwi_inc.h definiert und beschreibt das
- Datum in der Form >tt.mm.jjjj<. Für x kann auch eines der
- Macros AR,AM,AL verwendet werden, um die Ausgabe rechts-, linksbündig
- oder mittig auszuführen.
-
- @message
- void message(string);
-
- ■ Parameter:
-
- char * string; Ausgabestring
-
- ■ Beschreibung:
-
- Die Funktion message blendet den String string an der unteren
- Bildschirmzeile mittig ein. Die Ausgabe erfolgt direkt auf den
- Bildschirm und nicht in einem Fenster.
-
- @printw
- int printw(win,format[,argument]..);
-
- ■ Parameter:
-
- WINDOW win; Fensterbezeichner auf das Ausgabefenster
- char *format; Ausgabeformatkontrolle
-
- ■ Beschreibung:
-
- Die Funktion printw ersetzt die Standardfunktion printf für Ausgaben
- in einem Fenster. Dabei ist das Ausgabeformat mit printf identisch,
- lediglich der Fensterbezeichner wird zusätzlich angegeben. Für
- genauere Beschreibung der Funktion siehe in der Funktionsbeschreibung
- printf. Die Ausgabeposition richtet sich nach der Position der
- Fenstercursors, die durch wlocate manipuliert werden kann.
- Es werden die zur Zeit gültigen Ausgabeattribute des Fensters bzw
- Bildschirms benutzt.
-
- @set_message_row
- void set_message_row(nr);
-
- ■ Parameter:
-
- unsigned int nr;Zeile der Ausgabe
-
- ■ Beschreibung:
-
- Die Funktion set_message_row setzt die Ausgabezeile für die
- Funktion message fest. Die Funktion message wird z. B. benutzt,
- um Informationen über Menüpunkte auszugeben.
-
- @get_input_status
- unsigned char get_input_status();
-
- ■ Beschreibung:
-
- Die Funktion get_input_status übergibt das Statusbyte der letzten
- Tastaturbetätigung. In diesem Statusbyte sind die Informationen
- über betätigte Sondertasten gespeichert. Werden beide Shittasten
- gleichzeitig betätigt wird die Betätigung der linken Taste ignoriert.
-
- @get_last_input
- unsigned char get_last_input();
-
- ■ Beschreibung:
-
- Die Funktion get_last_input liefert den letzten Tastaturanschalg
- nochmal. Dabei wird auch der Statuscode der letzten Eingabe gesetzt.
-
- @input
- unsigned char input();
-
- ■ Beschreibung:
-
- Die Funktion input ließt Eingaben von der Tastatur ein. Dabei wartet
- Sie nicht, bis eine Eingabe erfolgt ist. Wenn keine Tastatureingabe
- vorliegt gibt Sie 0 zurück, andernfalls den ASCII Code der entsprechenden
- Taste. Ob gleichzeitig Sondertasten, wie Alt,Controll,Shift oder
- Funktionstasten betätigt worden sind, kann über die is_???_key
- Funktionen abgefragt werden. Die Funktion input reagiert nicht auf
- solche Tastatureingabesequenzen, die im Betriebssystem festgelegte
- Funktionen auslösen, wie zum Beispiel ALT+F1 oder ALT+F2, CTRL+ALT+DEL,
- oder nicht definierte Kombinationen wie z.B. ALT+CTRL+Cursorsteuerungen usw.
-
- @is_insert_mode
- int is_insert_mode();
-
- ■ Beschreibung:
-
- Die Funktion is_insert_mode prüft ob der Einfügemodus aktiv ist
- oder nicht.
-
- @is_???_key
- int is_function_key();
- int is_alt_key();
- int is_control_key();
- int is_shift_key();
- int is_cursor_key();
-
- ■ Beschreibung:
-
- Die Funktionen is_???_key prüfen das Statusbyte der letzten Eingabe
- ob die jeweilige Sondertaste betätigt wurde. Ist dies nicht der
- Fall übergeben alle Funktionen 0 sonst 1. Die Funktion is_shift_key
- ergibt 1 für die rechte und 2 für die linke Shifttaste.
-
- @ungetch_keyboard
- void ungetch_keyboard(ch);
-
- ■ Parameter:
-
- unsigned char ch; Tastencode der in die Warteschlange eingefügt wird.
-
- ■ Beschreibung:
-
- Die Funktion ungetch_keyboard fügt das Zeichen ch in die
- Tastaturwarteschlange ein. Bei nächtsen Aufruf von input oder
- wait_input wird dieses Zeichen als Tastenanschlag geliefert. Dabei
- wird der aktuelle Tastaturstatuscode geliefert.
-
- @wait_input
- unsigned char wait_input();
-
- ■ Beschreibung:
-
- Die Funktion wait_input ließt Eingaben von der Tastatur ein. Dabei
- wartet Sie im Gegensatz zu input bis eine Eingabe erfolgt ist. Ob
- gleichzeitig Sondertasten, wie Alt,Controll,Shift, oder Funktionstasten
- betätigt worden sind, kann über die is_???_key Funktionen abgefragt
- werden. Die Funktion wait_input reagiert nicht auf solche
- Tastatureingabe-sequenzen, die im Betriebssystem festgelegte Funktionen
- auslösen, wie zum Beispiel ALT+F1 oder ALT+F2, CTRL+ALT+DEL usw,
- oder die nicht definiert sind wie z.B. ALT+CTRL+Cursorsteuertasten.
-
- @edit_long2
- int edit_long2(zahl,win,x,y,len,mod,min,max);
-
- ■ Parameter:
-
- long *zahl; Eingabestring
- WINDOW win; Eingabefenster
- int x,y; Position der ersten Eingabestelle
- int len; Eingabelänge
- char *mod; R,r oder L,l für rechts oder linksbündig
- long min,max; Unter, bzw Obergrenze des Wertes
-
- ■ Beschreibung:
-
- Die Funktion edit_long ist die Funktion edit_long mit Prüfung ob
- der Wert die Grenzen nicht verletzt. Die Eingabe gilt einschließlich
- den Grenzen. Wird die Grenze verletzt, wird ein Fenster mit den
- Grenzwerten eingeblendet und der Wert entsprechend angepaßt.
-
- @edit_string
- int edit_string(string,win,x,y,len);
-
- ■ Parameter:
-
- char *string; Eingabestring
- WINDOW win; Fensterbezeichner auf das Fenster
- int x,y; Position der ersten Eingabestelle
- int len; Eingabelänge
-
- ■ Beschreibung:
-
- Die Funktion edit_string ermöglich die Eingabe einer Zeichenkette
- string innerhalb des Fensters win mit der Länge len. Die Eingabe
- erfolgt an der Position x,y innerhalb des Fenster. Für die Eingabe
- wird der Zeileneditor verwendet, dessen Möglichkeiten bei
- input_string erläutert werden. Als zulässige Werte für x gelten
- auch die MACROS AL,AM,AR für linksbündig,mittig und rechtbündige
- Eingabe innerhalb des Fensters.
-
- @edit_time
- int edit_time(time,win,x,y);
-
- ■ Parameter:
-
- struct ZEIT *time; Eingabezeit
- WINDOW win; Fensterbezeichner auf das Fenster
- int x,y; Position der ersten Eingabestelle
-
- ■ Beschreibung:
-
- Die Funktion edit_time ermöglich die Eingabe einer Zeit in dem
- Fenster win. Die Eingabe im Format ST:MN:SK:HD erfolgt an der
- Position x,y und ist 12 Zeichen lang. Im Gegensatz zu input_time
- wird die Zeit vorher und nachher am Bildschirm angezeigt. Als
- zulässige Werte für x gelten auch die MACROS AL,AM,AR für
- linksbündig,mittig und rechtbündige Eingabe innerhalb des Fensters.
-
- @init_editor
- int init_editor(mode)
-
- ■ Parameter:
-
- int mode; MACRO aus kiwi_inc.h
- EDIT_ROW Zeilenmodus
- EDIT_FIELD Feldmodus
-
- ■ Beschreibung:
-
- Die Funktion init_editor versetzt den Editor in einen durch mode
- bestimmten Aufruf. Diese Funktion ist ein Sammlung von verschiedenen
- set_edit_mode Funktionsaufrufen. Folgende Aufrufe werden immer
- ausgeführt:
-
- @input_date
- int input_date(date,win,x,y);
-
- ■ Parameter:
-
- struct DATUM *date; Eingabedatum
- WINDOW win; Fensterbezeichner auf das Fenster.
- int x,y; Position der ersten Eingabestelle
-
- ■ Beschreibung:
-
- Die Funktion input_date ermöglich die Eingabe eines Datums in
- dem Fenster win. Die Eingabe im Format TT.MM.JJJJ erfolgt an der
- Position x,y innerhalb des Fensters und ist 10 Zeichen lang.
- Im Gegensatz zu edit_date wird das Datum vorher nicht am Bildschirm
- angezeigt. Als zulässige Werte für x gelten auch die
- MACROS AL,AM,AR für linksbündig,mittig und rechtbündige
- Eingabe innerhalb des Fensters.
-
- @input_float
- int input_float(zahl,win,x,y,len,nk);
-
- ■ Parameter:
-
- float *zahl; Eingabestring
- WINDOW win; Fensterbezeichner auf das Fenster.
- int x,y; Position der ersten Eingabestelle
- int len; Eingabelänge
- int nk; Anzahl der Nachkommastellen
-
- ■ Beschreibung:
-
- Die Funktion input_float ermöglich die Eingabe einer Floatzahl
- zahl in dem Fensterstellt win. Die Eingabe erfolgt an der
- Position x,y innerhalb des Fensters und ist len Zeichen lang.
- Die Anzahl der möglichen Nachkommastellen bestimmt nk. Im
- Gegensatz zu edit_float wird die Zahl vorher nicht am Bildschirm
- gezeigt. Als zulässige Werte für x gelten auch die
- MACROS AL,AM,AR für linksbündig,mittig und rechtbündige Eingabe.
-
- @input_int
- int input_int(zahl,win,x,y,len);
-
- ■ Parameter:
-
- int *zahl; Eingabestring
- WINDOW win; Fensterbezeichner auf das Fenster.
- int x,y; Position der ersten Eingabestelle
- int len; Eingabelänge
-
- ■ Beschreibung:
-
- Die Funktion input_int ermöglich die Eingabe einer Integerzahl
- zahl in dem Fenster win. Die Eingabe erfolgt an der Position x,y
- innerhalb des Fensters und ist len Zeichen lang. Im Gegensatz zu
- edit_long wird die Zahl vorher nicht am Bildschirm gezeigt.
- Als zulässige Werte für x gelten auch die MACROS AL,AM,AR
- für linksbündig,mittig und rechtbündige Eingabe innerhalb
- des Fensters.
-
- @input_long
- int input_long(zahl,win,x,y,len);
-
- ■ Parameter:
-
- long *zahl; Eingabestring
- WINDOW win; Fensterbezeichner auf das Fenster.
- int x,y; Position der ersten Eingabestelle
- int len; Eingabelänge
-
- ■ Beschreibung:
-
- Die Funktion input_long ermöglich die Eingabe einer Long
- Integerzahl zahl in dem Fenster win. Die Eingabe erfolgt an der
- Position x,y innerhalb des Fensters und ist len Zeichen lang.
- Im Gegensatz zu edit_long wird die Zahl vorher nicht am Bildschirm
- gezeigt. Als zulässige Werte für x gelten auch die
- MACROS AL,AM,AR für linksbündig,mittig und rechtbündige
- Eingabe innerhalb des Fensters.
-
- @input_string
- int input_string(string,win,x,y,len);
-
- ■ Parameter:
-
- char *string; Eingabestring
- WINDOW win; Fensterbezeichner auf das Fenster.
- int x,y; Position der ersten Eingabestelle
- int len; Eingabelänge
-
- ■ Beschreibung:
-
- Die Funktion input_string stellt den Zeileneditor des Toolpakets
- dar. Dieser Editor ermöglich die freie Eingabe beliebiger Zeichen
- in einer Zeile von durch len bestimmter Länge. In Grenzen ist sein
- Verhalten auch von außen steuerbar. Innerhalb der Eingabe kann
- mittels der Cursortasten der Eingabecursor beliebig nach links
- und rechts verschoben werden. Eingaben können an allen Positionen
- innerhalb des Eingabefelds gemacht werden. Ist die INSERT Funktion
- aktiv wird der Cursor als Block dargestellt und der rechts der
- Eingabe liegende Text nach rechts verschoben, sonst ist der Cursor
- als Strich zu sehen und der Text wird überschrieben.
- Im Gegensatz zu edit_string zeigt diese Funktion den String nicht
- vorher auf dem Bildschirm an.
-
- @input_time
- int input_time(time,win,x,y);
-
- ■ Parameter:
-
- struct ZEIT *time; Eingabezeit
- WINDOW win; Fensterbezeichner auf das Fenster
- int x,y; Position der ersten Eingabestelle
-
- ■ Beschreibung:
-
- Die Funktion input_time ermöglich die Eingabe einer Zeit in dem
- Fenster win. Die Eingabe im Format ST:MN:SK:HD erfolgt an der
- Position x,y innerhalb des Fensters und ist 12 Zeichen lang.
- Im Gegensatz zu edit_time wird die Zeit vorher nicht am Bildschirm
- angezeigt. Als zulässige Werte für x gelten auch die
- MACROS AL,AM,AR für linksbündig,mittig und rechtbündige Eingabe
- innerhalb des Fensters.
-
- @set_edit_mode
- int set_edit_mode(MODE);
-
- ■ Parameter:
-
- int MODE; MACRO aus kiwi_inc.h. Siehe Liste unten
-
- ■ Beschreibung:
-
- Die Funktion set_edit_mode beeinflußt das Verhalten des Zeileneditors,
- der in allen Eingabefunktionen verwendet wird.
-
- @array_get_files
- int array_get_files(name,key);
-
- ■ Parameter:
-
- char *name; Zeichenkette in der der ausgewählte name übergeben wird.
- char *key; Zeichenkette mit Zugriffspfad und des Zugriffsschlüssel
-
- ■ Beschreibung:
-
- Die Funktion array_get_files ermöglicht die Auswahl einer bestimmten
- Datei über ein Auswahlfenster. Die Zeichenkette key enthält den
- Zugriffspfad un den Zugriffschlüssel in der von DOS bekannten Notation.
- Dabei sind alle Joker und Wildcards zugelassen. Zum Beispiel würde
- der String key="c:/word/texte/*.txt" alle Dateien erfassen, die unter
- dem Verzeichnis c:\c\word\texte verzeichet sind und die Endung .txt
- besitzen. Ist der Schlüssel unvollständig, z.b.:"c:/word/texte" wird
- der automatisch mit /*:* erweitert. Alle diese Dateien werden erfasst,
- sortiert und in einem Fenster zentral am Bildschirm eingeblendet. Der
- Benutzer kann nun mittels des Mauszeigers oder der Cursortasten einen
- Leuchtbalken auf die gewünschte Datei bewegen. Durch RETURN oder
- Linke Maustaste wird die Auswahl abgeschlossen. Der ausgewählte
- Dateiname wird in die Zeichenkette name kopiert. Diese Zeichenkette muß
- mindestens 13 Zeichen besitzen, welches aber nicht abgeprüft wird.
- Durch ESCAPE oder eine andere Maustaste wird der Auswahlvorgang
- abgebrochen. Die Größe des Fensters variiert mit der Anzahl der
- erfassten Dateien.
-
- @browse_array
- int browse_array(buffer,count,size,x,y,max);
-
- ■ Parameter:
-
- char *buffer; Zeichenkette in der die Begriffe gespeichert sind
- int count; Anzahl gespeicherter Begriffe
- int size; Breite eines einzelnen Begriffs
- int x,y; Koordinaten der linken oberen Ecke des Auswahlfensters
- int max; Maximale Anzahl Begriffe gleichzeitig anzuzeigen.
-
- ■ Beschreibung:
-
- Die Funktion browse_array ermöglicht die Auswahl eines bestimmten
- Begriffs oder Objekts über ein Auswahlfenster. Die Zeichenkette buffer
- enthält count Begriffe von size Länge. Alle diese Begriffe werden
- in einem Fenster in einer Reihe am Bildschirm eingeblendet. Der
- Benutzer kann nun mittels des Mauszeigers oder der Cursortasten einen
- Leuchtbalken auf den gewünschten Begriff bewegen. Durch RETURN oder
- Linke Maustaste wird die Auswahl abgeschlossen. Durch ESCAPE oder
- eine andere Maustaste wird der Auswahlvorgang abgebrochen. Die Größe
- des Fensters ist abhängig von size und max. Der Fensterinhalt kann
- mit den Pfeilen rechts ,durch betätigen von SHIFT + Cursor UP
- bzw Cursor DOWN oder durch Anfahren mit der Maus gescrollt werden.
- Ein kleiner Querbalken an der rechten Fensterseite zeigt die
- Position innerhalb des Feldes.
-
- @browse_get_files
- int browse_get_files(name,key);
-
- ■ Parameter:
-
- char *name; Gewählte Datei
- char *key; Zugriffspfad mit Zugriffsschlüssel
-
- ■ Beschreibung:
-
- Die Funktion browse_get_files ermöglicht die Auswahl einer bestimmten
- Datei über ein Auswahlfenster. Die Zeichenkette key enthält den
- Zugriffspfad un den Zugriffschlüssel in der von DOS bekannten Notation.
- Dabei sind alle Joker und Wildcards zugelassen.
- Ist der Zugriffsschlüssel unvollständig, so wird er mit /*.* erweitert.
- Diese Funktion benutzt zur Auswahl der Dateien die Funktion
- browse_array anstatt wie bei array_get_files die Funktion choose_array.
- Dadurch werden die Dateinamen nicht in einem zweidimensionalen Feld
- augelistet, sondern in einer Reihe übereinander.
-
- @choose_button
- int choose_button(header,menu,count,x,y);
-
- ■ Parameter:
-
- char *header; Auswahlüberschrift
- MENU menu[]; Menufeld in dem die Menu- und Auswahlinformationen
- gespeichert sind
- int count; Anzahl verfügbarer Menuauswahlpunkte
- int x,y; Koordinaten der linken oberen Ecke des Auswahlfensters
-
- ■ Beschreibung:
-
- Die Funktion choose_button ermöglicht die Auswahl mehrerer Elemente
- eines Menüs. Diese Menüpunkte werden untereinander dargestellt
- und rechts davon jeweils ein Schalter. Ist ein Schalter betätigt
- und inaktiv, wird ein Kreuz erscheinen, der Begriff ist aktiv.
- Einen Schalter kann man mittels der Maus oder der Returntaste oder
- der Schlüsseltaste der Menüposition betätigen. Die Returntaste
- schaltet den Schalter, auf den der Cursor zeigt. Betätigen eines
- hervorgehobenen Buchstabens schaltet ebenfalls den jeweiligen Schalter.
- Die Auswahl wird mit Anfahren der Ok Taste oder durch betätigen
- von O beendet. Die entsprechenden Daten werden durch den Datentyp
- MENU bereitgehalten. Die Abfrage ob ein Menüpunkt aktiv oder
- inaktiv ist erfolgt durch den Wert menu[x].aktiv. Die Koordinaten
- x,y bestimmen die linke obere Ecke des Auswahlfensters, es sind
- aber auch die MACROS AL,AM,AR für x und y zugelassen.
-
- @choose_main_menu
- int choose_main_menu();
-
- ■ Beschreibung:
-
- Die Funktion choose_main_menu ermöglich die Anwahl einer der
- Hauptmenupositionen. Die Anwahl kann durch Betätigen der Alt Taste und
- des zur Menüposition gehörenden Buchstabens, oder durch Anwählen
- mit der Maus erfolgen. Bei Anwahl mit der Maus hängt die Reaktion
- von der mittels set_menu erfolgten Konfiguration ab.
- Bei POP-UP genügt bereits ein Anfahren in den Positionsbereich,
- bei PULL-DOWN muß der Mauszeiger in den Bereich gefahren und die
- linke Maustaste betätigt und gehalten werden, bei DOPPELKLICK muß
- angefahren, geklickt und wieder gelöst werden. Die Position des
- jeweiligen Untermenüs wird automatisch ermittelt, ebenso die
- Größe des zugehörigen Fensters.
-
- @choose_menu
- int choose_menu(menu,count,x,y,win);
-
- ■ Parameter:
-
- MENU[] menu; Menüfeld
- int count; Anzahl Menüpositionen
- int x,y; Koordinatenposition der linken oberen des Fensters
- WINDOW *win; Menüausgabefenster
-
- ■ Beschreibung:
-
- Die Funktion choose_menu ermöglich die Anwahl einer Option aus einer
- Auswahl, die innerhalb eines Fenster dargestellt werden. Die Darstellung
- ist der der Submenüs angepasst, kann aber ohne Menuleiste benutzt werden.
- Die Position wird durch x,y angegeben, wenn aber vorher set_menu(NACH_MAUS)
- aufgerufen wurde, wird die Position des Eingabefenster an die aktuelle
- Mauszeigerposition angepaßt. Die Anwahl kann durch Betätigen der
- Alt Taste und des zur Menüposition gehörenden Buchstabens, oder
- durch Anwählen mit der Maus erfolgen. Bei Anwahl mit der Maus wird
- die gewünschte Position mit dem Mauscursor angefahren und durch
- Anklicken der linken Taste angewählt. Das Ausgabefenster
- wird(wenn mit set_menu(BEHALT_WIN) eingestellt) in win übergeben,
- so das es später gelöscht werden kann. Die Variable win sollte vor
- dem ersten Aufruf -1 gesetzt werden, da diese Funktion nur ein Fenster
- öffnet wenn die Variable <=0 ist. Dadurch kann die Funktion in einer
- Schleife laufen, ohne Fensterflackern. Bei Betätigen der Escapetaste
- oder Klicken ausserhalb des Fensterbereichs wird -1 übergeben,
- sonst die Nummer der Menuposition.
-
- @choose_sub_menu
- int choose_sub_menu(submenu,subcount,win);
-
- ■ Parameter:
-
- MENU[] submenu; Menüfeld
- int subcount; Anzahl Menüpositionen
- WINDOW *win; Menüausgabefenster
-
- ■ Beschreibung:
-
- Die Funktion choose_sub_menu ermöglich die Anwahl eines der
- Untermenüoptionen nach Anwahl eines Hauptmenüpunktes. Positionen
- der Submenüs werden automatisch bestimmt. Die Anwahl kann durch
- Betätigen der Alt Taste und des zur Menüposition gehörenden
- Buchstabens, oder durch Anwählen mit der Maus erfolgen.
- Bei Anwahl mit der Maus hängt die Reaktion von der mittels
- set_menu erfolgten Konfiguration ab. Bei POP-UP wird die
- gewünschte Position mit dem Mauscursor angefahren und durch
- Anklicken der linken Taste angewählt. Bei PULL-DOWN und DOPPELKLICK
- ist die linke Maustaste noch gedrückt. Die Position wird angefahren
- und die Mausstaste losgelassen. Das Ausgabefenster wird je nach
- Konfiguration bei Verlassen der Funktion gelöscht oder in
- win übergeben, so das es später gelöscht werden kann.
- Die Variable win sollte vor dem ersten Aufruf -1 gesetzt werden,
- da diese Funktion nur ein Fenster öffnet wenn die Variable <=0 ist.
- Dadurch kann die Funktion in einer Schleife laufen, ohne Fensterflackern.
- Bei Betätigen der Escapetaste oder Klicken ausserhalb des
- Fensterbereichs wird -1 übergebn, sonst die Nummer der Menuposition.
-
- @dialog
- int dialog(string,x,y);
-
- ■ Parameter:
-
- char *string; Hinweistext des Dialogs
- int x,y; Koordinaten der linken oberen Ecke des Dialogfensters
-
- ■ Beschreibung:
-
- Die Funktion dialog ermöglich die Abfrage einer Entscheidung durch den
- Benutzer. Ein Dialogfenster wird eingeblendet, in dem der Hilfetext
- im oberen Teil eingeblendet wird. Der Hilfetext kann beliebig lang sein
- und wird durch das Zeilenvorschubzeichen \n in einzelen Zeilen unterteilt.
- Im unteren Teil sind zwei Knöpfe, für Ja oder Nein untergebracht.
- Der Benutzer führt die Entscheidung entweder durch die Tasten
- J,j oder N,n oder durch anfahren der Knöpfe mit dem Mauszeiger
- und durch Betätigen der linken Maustaste herbei. Die Einstellung
- mit set_menu(NACH_MAUS) ist auch hier wirksam, das heißt in diesem
- Fall wird die Position der linken oberen Ecke von der aktuellen
- Position des Mauszeiger abhängig gemacht.
-
- @init_main_menu
- int init_main_menu(menu_leiste,anzahl);
-
- ■ Parameter:
-
- MENU menu_leiste[]; Struct Feld vom Typ MENU
- Dieses Feld beinhaltet die not wendigen Informationen
- int anzahl; Anzahl Menupunkte
-
- ■ Beschreibung:
-
- Die Funktion init_main_menu initialisiert das Menusystem mit Menüleiste
- und POP-UP oder PULL-Down Menüs. Dazu wird das Feld menu_leiste
- initialisiert.
-
- @roll_bar
- double roll_bar(string,value,min,max,step,size,x,y);
-
- ■ Parameter:
-
- char *string; Hinweistext des Rollbalkens
- double int value; Eingabewert
- double int min,max; Unter- bzw Obergrenze des Werts
- double int step; Schrittweite der Änderung
- int size; Breite des Rollbalkens (min 30)
- int x,y; Koordinaten der linken oberen Ecke des Dialogfensters
-
- ■ Beschreibung:
-
- Die Funktion roll_bar emuliert einen Schieberegler um eine Floatzahl value
- einzugeben. Dazu wird der Bereich von min bis max als Schiebestrecke am
- Bildschirm angezeigt. Der momentane Wert von value wird durch die Angabe
- des Reglers proportional zum Wert angezeigt. Links und rechts der
- Schiebestrecke befinden sich Pfeile. Durch Anfahren der Maus auf einen
- Pfeil und Betätigen der linken Maustaste wird der Wert um step verändert.
- Durch die Tasten Cursor links und rechts wird der gleiche Effekt erzielt.
- Durch betätigen von Home oder End wird der Wert auf min oder max gesetzt.
- Durch PgDn oder PGUp wird der Wert um das 10 fache von step verändert.
- Durch Anfahren von OK oder Eingabe von o,O, Return wird der geänderte
- Wert übergeben, durch ESC, n,N, Esc Taste der Eingangswert.
-
- @set_menu
- int set_menu(mode);
-
- ■ Parameter:
-
- int mode; MACRO aus kiwi_inc.h
-
- ■ Beschreibung:
-
- Die Funktion set_menu steuert die Art der Menuerfassung der
- Funktionen choose_main_menu, choose_sub_menu, choose_menu.
-
- Zur Verfügung stehende Funktionen sind:
-
- EINFACH Rahmenart der Eingabefenster ─
- DOPPELT Rahmenart der Eingabefenster ═
- PULL_DOWN Behandele Menü wie Pull Down Menüs
- POP_UP Behandele Menu wie Pop Up Menüs
- DOPPELKLICK Klicke Zweimal zur Auswahl
- BEHALT_WIN Behalte Eingabefenster bei exit
- LOESCH_WIN Lösche Eingabefenster bei exit
- FESTGELEGT Positioniere Menüfenster auf Werte
- NACH_MAUS Positioniere Menüfenster nach Mauszeiger
- COMMENT Kommentare werden ausgegeben
- NO_COMMENT Kommentare werden nicht ausgegeben(Vorgabe)
- NUR_MENU Hauptmenü wartet bis Auswahl getroffen(Vorgabe)
- AUCH_MENU Hauptmenü prüft ob Auswahl anliegt, wenn nicht weiter
-
- @browse_help
- int browse_help();
-
- ■ Beschreibung:
-
- Die Funktion browse_help ermöglich das Durchblättern der Hilfetextdatei
- nach Stichworten. Diese Stichworte, nach denen der entsprechende Text
- referenziert wird, werden in einer Reihe am Bildschirm in einem Fenster
- ausgegeben. Der Anwender sucht sich die entsprechende Information aus und
- bekommt den zugehörigen Text am Bildschirm angezeigt. Eine zweite
- Möglichkeit besteht in der Eingabe eines Begriffs, nach dem der Inhalt
- der Stichworte durchsucht wird. Bei Übereinstimmung wird der entsprechende
- Text am Bildschirm angezeigt. Die Eingabe des Begriffs ist nicht von
- Groß- oder Kleinschreibung abhängig.
-
- @check_if_get_help
- void check_if_get_help();
-
- ■ Beschreibung:
-
- Die Funktion check_if_get_help wird von input aufgefufen, wenn die
- Hilfetaste aktiviert wurde. Diese Funktion ist im Sourcecode und
- macht nicht anderes als die Funktion get_help aufzurufen wenn die
- Hilfe eingebunden werden soll. Wenn ein Programm ohne Hilfefunktion
- erstellt werden soll, wird der Aufruf get_help entfernt, neu compiliert
- und der gesamte Hilfecode wird nicht mit eingebunden, was den
- Speicherbedarf um etwa 25 KB reduziert. Es können auch zwei getrennt
- Objektmodule erstellt werden, die dann bedarfsabhängig eingebunden werden.
-
- @create_error
- int create_error(name);
-
- ■ Parameter:
-
- char *name; Aktueller Suchbegriff
-
- ■ Beschreibung:
-
- Die Funktion create_error erzeugt eine Fehlermeldung, mit dem Text
- für Eintrag name. Wenn direkt ein Fehler erzeugt werden soll,
- kann diese Funktion benutzt werden. Diese setzt den Suchbegriff
- auf name und ruft dann den Fehlertext ab.
-
- @get_help
- int get_help();
-
- ■ Beschreibung:
-
- Die Funktion get_help aktiviert die Hilfefunktion. Nach Aufruf wird
- die Textdatei nach dem aktuellen Suchbegriff, der als letztes mit
- der Funktion set_help_name gesetzt wurde, durchsucht. Wenn Informationen
- gefunden werden, so wird der zugehörige Text am Bildschirm eingeblendet.
- Ist der Text länger als das Bildschirmfenster so kann im Text
- geblättert werden. Je nach Einstellung der Hilfe warte diese Funktion
- auf eine Aktion (Tastendruck oder Mausklick) und löscht das Fenster
- wieder oder kehrt direkt zurück. Ist die Option BEHALT_WIN mit
- set_help gesetzt worden, so kann das Bildschirmfenster mit
- get_last_window referenziert werden.
-
- @init_error
- int init_error(name);
-
- ■ Parameter:
-
- char *name; Datenpfadbeschreibung der Hilfetextdatei
-
- ■ Beschreibung:
-
- Die Funktion init_error initialisiert das Fehlermeldungssystem.
- Die Textdatei name muß den Anhang .ERR besitzen der aber nicht
- angegeben werden darf. Diese Datei wird eröffnet, die zugehörige
- Indexdatei wird auf Aktualität überprüft und gegebenenfalls
- neu erstellt, so das der Index immer auf dem neuesten Stand ist.
- Beide Dateien werden dann eröffnet und für den Zugriff vorbereitet.
-
- @init_help
- int init_help(name);
-
- ■ Parameter:
-
- char *name; Datenpfadbeschreibung der Hilfetextdatei
-
- ■ Beschreibung:
-
- Die Funktion init_help initialisiert das Hilfesystem. Die Textdatei
- name muß den Anhang .HLP besitzen der aber nicht angegeben werden darf.
- Diese Datei wird eröffnet, die zugehörige Indexdatei wird auf
- Aktualität überprüft und gegebenenfalls neu erstellt, so das der
- Index immer auf dem neuesten Stand ist. Beide Dateien werden dann
- eröffnet und für den Zugriff vorbereitet.
- Informationen über die Formate der Textdateien entnehmen Sie bitte
- der Einleitung.
-
- @set_error
- int set_error(mode);
-
- ■ Parameter:
-
- int mode; MACRO aus kiwi_inc.h
-
- ■ Beschreibung:
-
- Die Funktion set_error verändert das Verhalten des Errormessagesystems
- in bestimmten Grenzen abhängig von mode.
-
- @set_error_color
- void set_error_color(attrib,inv_attrib);
-
- ■ Parameter:
-
- int attrib,inv_attrib; Attributwerte des Errormessagefensters
-
- ■ Beschreibung:
-
- Die Funktion set_error_color setzt die Farbe des Fehlermeldungsfensters
- auf attrib und inv_attrib. Standardmäßig ist die Farbe auf Invers der
- Farbtabelle bei Aufruf von init_help gesetzt.
-
- @set_error_name
- void set_error_name(name);
-
- ■ Parameter:
-
- char *name; Aktueller Suchbegriff
-
- ■ Beschreibung:
-
- Die Funktion set_error_name setzt den Begriff name als aktueller
- Suchbegriff fest. Nach diesem Aufruf wird an jeder beliebigen Stelle,
- wenn die Funktion get_error aufgerufen worden ist, die Textdatei nach
- dem Begriff name durchsucht, und wenn gefunden wird der zugehörige
- Fehlermeldungstext am Bildschirm eingeblendet.
- Wenn der Begriff nicht gefunden wird, wird eine Meldung angezeigt,
- das leider kein Hinweis verfügbar ist.
-
- @set_error_pos
- void set_error_pos(x,y);
-
- ■ Parameter:
-
- int x,y; Koordinaten der linken oberen Ecke des Errormessagefensters
-
- ■ Beschreibung:
-
- Die Funktion set_error_pos setzt die Position des Errormessagefensters
- auf x,y der oberen linken Ecke. Standardmäßig ist die Position auf
- Bildschirmmitte gesetzt. Es können auch die MACROS AM,AL,AR für x oder y
- verwendet werden.
-
- @set_help
- int set_help(mode);
-
- ■ Parameter:
-
- int mode; MACRO aus kiwi_inc.h
-
- ■ Beschreibung:
-
- Die Funktion set_help verändert das Verhalten des Hilfesystems in
- bestimmten Grenzen abhängig von mode.
-
- @set_help_color
- void set_help_color(attrib,inv_attrib);
-
- ■ Parameter:
-
- int attrib,inv_attrib; Attributwerte des Errormessagefensters
-
- ■ Beschreibung:
-
- Die Funktion set_help_color setzt die Farbe des Hilfefensters auf
- attrib und inv_attrib. Standardmäßig ist die Farbe auf Invers der
- Farbtabelle bei Aufruf init_help gesetzt.
-
- @set_help_mask
- void set_help_mask(mode);
-
- ■ Parameter:
-
- unsigned short mode; Tastenkombination die zum Auslösen
- der Hilfefunktion führt.
-
- ■ Beschreibung:
-
- Die Funktion set_help_mask setzt die gültige Tastenkombination fest,
- die zum Aufruf der Case Sensitiv Help führt. Alle gültigen
- Tasten und Tastenkombination mit Alt, Funktions und Controltasten
- können gewählt werden. Dazu muß das "obere" Byte von mode auf den
- input_status und das "untere" Byte auf den Tastencode gesetzt werden.
-
- @set_help_name
- void set_help_name(name);
-
- ■ Parameter:
-
- char *name; Aktueller Suchbegriff
-
- ■ Beschreibung:
-
- Die Funktion set_help_name setzt den Begriff name als aktueller
- Suchbegriff fest. Nach diesem Aufruf wird an jeder beliebigen Stelle,
- wenn die Funktion get_help aufgerufen worden ist, die Textdatei nach
- dem Begriff name durchsucht, und wenn gefunden wird der zugehörige
- Hilfetext am Bildschirm eingeblendet. Wenn der Begriff nicht gefunden
- wird, wird eine Meldung angezeigt, das leider keine Hilfe verfügbar ist.
-
- @set_help_pos
- void set_help_pos(x,y);
-
- ■ Parameter:
-
- int x,y;Koordinaten der linken oberen Ecke des Hilfefensters
-
- ■ Beschreibung:
-
- Die Funktion set_help_pos setzt die Position des Hilfefensters auf x,y
- der oberen linken Ecke. Standardmäßig ist die Position auf
- Bildschirmmitte gesetzt. Es können auch die MACROS AM,AL,AR für x
- oder y verwendet werden.
-
- @reset_error
- void reset_error();
-
- ■ Beschreibung:
-
- Die Funktion reset_error schließt die beiden zum Errormessagesystem
- gehörenden Dateien. Wenn während des Programmablaufs ein Wechsel
- der Textdateien notwendig werden sollte muß vor Aufruf von init_error
- das alte System mit reset_error abgeschlossen worden sein. Diese
- Funktion sollte in reset_tools eingebunden werden.
-
- @reset_help
- void reset_help();
-
- ■ Beschreibung:
-
- Die Funktion reset_help schließt die beiden zum Hilfesystem
- gehörenden Dateien. Wenn während des Programmablaufs ein
- Wechsel der Textdateien notwendig werden sollte muß vor Aufruf
- von init_help das alte System mit reset_help abgeschlossen worden sein.
- Diese Funktion sollte in reset_tools eingebunden werden.
-
- @check_printer_status
- unsigned char check_printer_status(nr);
-
- ■ Parameter:
-
- int nr; Nummer des Druckers
-
- ■ Beschreibung:
-
- Die Funktion check_printer_status überprüft den Status des Druckers
- nr und übergibt ein Statusbyte. Der als PRN angeschlossene Drucker
- hat die Nummer 0.
- Ist eines der ersten drei Bytes gesetzt, ist der Drucker nicht
- betriebsbereit.
-
- @feed_printer
- void feed_printer(anzahl);
-
- ■ Parameter:
-
- int anzahl; Anzahl Zeichen zum Vorschieben
-
- ■ Beschreibung:
-
- Die Funktion feed_printer verschiebt den Druckkopf um anzahl
- Zeichen nach rechts.
-
- @flush_printer
- void flush_printer();
-
- ■ Beschreibung:
-
- Die Funktion flush_printer leert den Druckpuffer des Ausgabekanals.
- Alle noch gepufferten Zeichen werden auf den Ausgabekanal ausgegeben.
-
- @init_printer
- int init_printer(pfad);
-
- ■ Parameter:
-
- char *pfad; Dateipfad für Druckersteuerung
-
- ■ Beschreibung:
-
- Die Funktion init_printer verbindet den internen Druckausgabekanal
- mit dem Standarddruckerstream stdprn. Diese Funktion muß vor
- jeglicher Druckausgabe aufgerufen werden. Beim Aufruf wird versucht
- eine Datei pfad zu laden, in der Informationen über die
- Möglichkeiten und Steuersequenzen des angeschlossenen Druckers
- enthalten sind. Wenn diese Datei nicht geladen werden kann,
- kommen die Voreinstellung zur Geltung, die für einen NEC P6,7 PLUS
- bestimmt sind.
-
- @link_printer
- int link_printer(stream);
-
- ■ Parameter:
-
- FILE *stream; Ausgabedatei
-
- ■ Beschreibung:
-
- Die Funktion link_printer verbindet den internen Druckausgabekanal
- zusäztlich mit der angegebenen Datei stream. Damit kann die
- gesamte Druckausgabe auf eine Datei, oder auf einen zweiten Drucker
- umgeleitet werden, während der erste Drucker ebenfalls angesteuert
- wird. Dieser Befehl hat keinen Einfluß auf die angewählten
- Druckertreiberinformationen.
-
- @print_char
- int print_char(ch,anzahl);
-
- ■ Parameter:
-
- unsigned char ch; Zeichen zum Drucken
- int anzahl; Anzahl Zeichen die gedruckt werden sollen.
-
- ■ Beschreibung:
-
- Die Funktion print_char gibt anzahl Zeichen ch auf den
- Druckausgabekanal aus.
-
- @print_date
- int print_date(date);
-
- ■ Parameter:
-
- struct DATUM *date; Zeiger auf Datum
-
- ■ Beschreibung:
-
- Die Funktion print_date gibt den Inhalt des Datums date auf den
- Druckausgabekanal in dem Format >dd.mm.jjjj< aus.
-
- @print_float
- int print_float(number,len,nk);
-
- ■ Parameter:
-
- double number; Zahl zum Drucken
- int len; Anzahl Zeichen der Zahl
- int nk; Anzahl Nachkommastellen
-
- ■ Beschreibung:
-
- Die Funktion print_float gibt die Zahl number mit len Zeichen
- und nk Nachkommastellen rechtsbündig auf dem Druckausgabekanal aus.
-
- @print_time
- int print_time(time,mod);
-
- ■ Parameter:
-
- struct ZEIT *time; Zeiger auf Zeit
- char *mod; h Stunden, m Minuten s Sekunden z Hunderstel
-
- ■ Beschreibung:
-
- Die Funktion print_time gibt den Inhalt der Zeit time auf den
- Druckausgabekanal in von mod abhängigen Format.
-
- @printp
- int printp(maske[,argument]..);
-
- ■ Parameter:
-
- char *maske; Formatmaske
-
- ■ Beschreibung:
-
- Die Funktion printp ersetzt die Standardfunktion printf für
- Ausgaben auf den Druckausgabekanal. Die Befehlssyntax ist
- identisch mit printf, siehe also dort für weiter Informationen.
-
- @set_default_modes
- void set_default_modes();
-
- ■ Beschreibung:
-
- Die Funktion set_default_modes aktiviert die voreingestellten
- Druckerinformationen. Die Voreinstellung sind für einen normalen
- Nadeldrucker wie NEC P6. Druckerinformationen von vorherigen Aufrufen
- werden durch diesen Aufruf gelöscht.
-
- @set_default_printer_status
- void set_default_printer_status();
-
- ■ Beschreibung:
-
- Die Funktion set_default_printer_status setzt die Druckausgabekanäle
- wieder auf ihre Standardwerte. Das heißt für MS-DOS Kanal 1 an stprn
- und Kanal zwei abschalten. Diese Kanäle sind standardmäßig Voreingestellt
- und brauchen nur bei Umleitung wieder zurückgestellt werden.
-
- @redirect_printer
- int redirect_printer(stream);
-
- ■ Parameter:
-
- FILE *stream; Ausgabedatei
-
- ■ Beschreibung:
-
- Die Funktion redirect_printer leitet den internen Druckausgabekanal
- auf die Datei stream. Damit kann die gesamte Druckausgabe auf eine
- Datei umgeleitet werden, oder aber auch auf einen anderen
- Ausgabedrucker. Dieser Befehl hat keinen Einfluß auf die
- angewählten Drucktreiberinformationen.
-
- @unlink_printer
- int unlink_printer();
-
- ■ Beschreibung:
-
- Die Funktion unlink_printer unterbricht die Verbindung des
- Druckausgabekanal mit dem zweiten angegeben Kanal.
-
- @empty_mouse
- void empty_mouse();
-
- ■ Beschreibung:
-
- Die Funktion empty_mouse leert den Maustastenpuffer solange,
- bis der keine Maustastedruck mehr anliegt. Dann erst wird der
- Programmablauf weitergegeben.
-
- @get_last_mouse_pos
- void get_last_mouse_pos(x,y);
-
- ■ Parameter:
-
- unsigned int *x,*y; Mauskoordinaten
-
- ■ Beschreibung:
-
- Die Funktion get_last_mouse_pos übergibt die Mauskoordinaten bei
- dem letzten Aufruf von mouse oder mouse_trap.
-
- @limit_mouse_area
- int limit_mouse_area(xa,ya,xe,ye);
-
- ■ Parameter:
-
- int xa,ya,xe,ye; Eckkoordinaten des erlaubten Bereichs
-
- ■ Beschreibung:
-
- Die Funktion limit_mouse_area limitiert die Mausbewegungen auf
- den angegebenen Bereich. Danach ist eine Bewegung des Mauscursors
- nur noch in dem definierten Rechteck möglich. Alle außerhalb
- liegenden Mauskoordinaten werden in das Rechteck umgewandelt.
- Wenn der Bildschirm in einem erweiterten Modus laufen soll,
- ist es eventuell notwendig, die Grenzen der Mausbewegung anzupassen.
-
- @mouse
- int mouse(x,y);
-
- ■ Parameter:
-
- unsigned int *x,*y; Aktuelle Mauskoordinaten
-
- ■ Beschreibung:
-
- Die Funktion mouse ermöglich die Kontrolle über die Mausbewegungen
- und Maustasten. Die Koordinaten x,y entsprechen den zum Aufruf
- gültigen Mauspositionskoordinaten, entsprechend den
- Bildschirmkonventionen im Fenstersystem.
-
- @mouse_cursor
- int mouse_cursor(mode);
-
- ■ Parameter:
-
- int mode; MACRO aus kiwi_inc.h
-
- ■ Beschreibung:
-
- Die Funktion mouse_cursor schaltet den Mauscursor je nach mode an
- oder ab, oder übergibt den aktuellen Mauscursorstatus, das heißt
- ob dieser ein- oder ausgeschaltet ist.
-
- @mouse_trap
- int mouse_trap(xa,ya,xe,ye);
-
- ■ Parameter:
-
- int xa,ya,xe,ye; Eckkoordinaten des Rechtecks,
- innerhalb dessen der Mauscursor "gefangen" wird.
-
- ■ Beschreibung:
-
- Die Funktion mouse_trap checkt die Mauscursorposition und meldet
- wenn der Mauscursor sich in dem durch die Eckkoordinaten
- beschriebenen Rechtecks befindet und eine Maustaste betätigt wurde.
- Das Rechteck gilt einschließlich der Koordinaten. Das
- Rechteck 2,2,2,2 z.B. beschreibt die Position 2,2.
-
- @reset_mouse
- void reset_mouse();
-
- ■ Beschreibung:
-
- Die Funktion reset_mouse beendet die Mausbenutzung und schaltet
- diese komplett ab. Dabei wird der Mauscursor, sofern eingeblendet
- ebenfalls abgeschaltet. Diese Funktion sollte in reset_tools
- enthalten sein.
-
- @set_mouse
- int set_mouse(mode);
-
- ■ Parameter:
-
- int mode; MACRO aus kiwi_inc.h
-
- ■ Beschreibung:
-
- Die Funktion set_mouse schaltet die Mausbenutzung je nach mode
- an oder ab, oder übergibt den aktuellen Mausstatus, das
- heißt ein- oder ausgeschaltet. Im Gegensatz zu reset_mouse wird
- die Maus nicht gänzlich abgeschaltet, sondern nur temporär.
-
- @set_mouse_cursor_shape
- int set_mouse_cursor_shape(start,end);
-
- ■ Parameter:
-
- int start; Startzeile des Cursor
- int end; Endzeile des Cursors
-
- ■ Beschreibung:
-
- Die Funktion set_mouse_cursor_shape setzt den Mauscursor auf
- die Größe von Startzeile bis Endzeile. Bei Monochrom geht die
- Zeilennumerierung von 0-13, bei Farbadaptern geht er von 0-7.
- Dabei wird der Cursor auf Hardwarecursor umgeschaltet.
-
- @set_mouse_cursor_size
- int set_mouse_cursor_size(mode);
-
- ■ Parameter:
-
- int mode; MACRO aus kiwi_inc.h
-
- ■ Beschreibung:
-
- Die Funktion set_mouse_cursor_size setzt den Mauscursor
- auf die Form mode.
-
- @set_mouse_pos
- int set_mouse_pos(x,y);
-
- ■ Parameter:
-
- unsigned int x,y; Die gewünschten Mauskoordinaten
-
- ■ Beschreibung:
-
- Die Funktion set_mouse_pos setzt den Mauscursor an die gewünschte
- Position. Dabei wird keine Überprüfung bezüglich der
- Bildschirmgrenzen durchgeführt.
-
- @add_time
- unsigned long add_time(sum,time1,time2);
-
- ■ Parameter:
-
- struct ZEIT *sum,*time1, sum ist Zeitsumme, time1 ist erste,
- *time2; time2 die zweite Zeit.
-
- ■ Beschreibung:
-
- Die Funktion add_time addiert die Zeiten von time1 und time2 und
- speichert die Summe in sum.
-
- @compare_date
- int compare_date(date1,date2);
-
- ■ Parameter:
-
- struct DATUM *date1; Das 1 Datum
- struct DATUM *date2; Das 2 Datum
-
- ■ Beschreibung:
-
- Die Funktion compare_date vergleicht zwei Datumsangaben darauf
- welche von beiden jüngeren Ursprungs ist.
-
- @compare_time
- int compare_time(time1,time2);
-
- ■ Parameter:
-
- struct ZEIT *time1; Die 1 Zeit
- struct ZEIT *time2; Die 2 Zeit
-
- ■ Beschreibung:
-
- Die Funktion compare_time vergleicht zwei Zeitangaben darauf
- welche jüngeren Ursprungs ist.
-
- @copy_date
- void copy_date(date1,date2);
-
- ■ Parameter:
-
- struct DATUM *date1,*date2; Zeiger auf Datumsstrukturen die
- kopiert werden sollen
-
- ■ Beschreibung:
-
- Die Funktion copy_date kopiert die Werte des ersten Arguments auf
- das zweite Argument.
-
- @copy_time
- void copy_time(time1,time2);
-
- ■ Parameter:
-
- struct ZEIT *time1,*time2; Zeiger auf Datumsstrukturen die
- kopiert werden sollen
-
- ■ Beschreibung:
-
- Die Funktion copy_time kopiert die Werte des ersten Arguments auf
- das zweite Argument.
-
- @get_file_date_info
- int get_file_date_info(datei,date,time);
-
- ■ Parameter:
-
- char *datei; Vollständige Pfadangabe der Datei
- struct DATUM *date; Zeiger auf den Datumsstruct
- struct ZEIT *time; Zeiger auf Zeitstruct
-
- ■ Beschreibung:
-
- Die Funktion get_file_date_info erfasst die aktuelle Erstellungs,
- bzw letzte Schreibzugriffszeit der Datei datei. Das Datum wird
- in date, die Zeit in time gespeichert.
-
- @get_system_date
- void get_system_date(date);
-
- ■ Parameter:
-
- struct DATUM *date; Zeiger auf den Datumsstruct
-
- ■ Beschreibung:
-
- Die Funktion get_system_date holt das aktuelle Systemdatum des
- Rechners und speichert es in den Datumsstruct date.
-
- @get_system_time
- void get_system_time(time);
-
- ■ Parameter:
-
- struct ZEIT *time; Zeiger auf den Zeitstruct
-
- ■ Beschreibung:
-
- Die Funktion get_system_time holt die aktuelle Systemzeit und
- speichert diese in dem Struct time.
-
- @set_date
- void set_date(date,tag,monat,jahr);
-
- ■ Parameter:
-
- struct DATUM *date; Zu setzendes Datum;
- unsigned char *tag,*monat,*jahr; Die Parameter des Datums.
-
- ■ Beschreibung:
-
- Die Funktion set_date initialisiert das Datum date auf die
- angegebenen Werte tag,monat,jahr. Die Struktur DATUM wird in
- kiwi_inc.h definiert und beschreibt das Datum in der
- Form >tt.mm.jjjj<.
-
- @set_time
- void set_time(time,stunde,minute,sekunde,zehntel);
-
- ■ Parameter:
-
- struct ZEIT *time; Zeiger auf den Zeitstruct
- char * stunde; Stunden der Systemzeit
- char * minute; Minuten der Systemzeit
- char * sekunde; Sekunden der Systemzeit
- char * zehntel; Hunderstel der Systemzeit
-
- ■ Beschreibung:
-
- Die Funktion set_time setzt die Werte des Structs time
- auf die angegeben Werte.
-
- @set_system_date
- void set_system_date(date);
-
- ■ Parameter:
-
- struct DATUM *date; Zeiger auf den Datumsstruct
-
- ■ Beschreibung:
-
- Die Funktion set_system_date setzt das aktuelle Systemdatum
- des Rechners auf die Werte des Datumsstruct date.
-
- @check_memory
- int check_memory();
-
- ■ Beschreibung:
-
- Die Funktion check_memory prüft ob noch Speicher im Heap oder
- Far Heap allokiert ist. Wenn ja wird die Funktion Mem_Display
- aufgerufen um ein Belegungsprotokoll am Bildschirm auszugeben. Diese
- Funktion sollte als letzte Funktion vor Verlassen des Programms
- benutzt werden, um zu prüfen ob alle Speicherbereiche befreit worden sind.
-
- @Far_Mem_Used
- unsigned long Far_Mem_Used();
-
- ■ Beschreibung:
-
- Die Funktion Far_Mem_Used übergibt die Anzahl der aktuell im Far Heap
- besetzten Bytes.
-
- @kw_farfree
- void kw_farfree(*ptr);
-
- ■ Parameter:
-
- void far *ptr; Zeiger auf Speicherblock im Far Heap
-
- ■ Beschreibung:
-
- Die Funktion kw_farfree befreit einen zuvor mit kw_farmalloc allokierten
- Speicherblock. Diese Funktion ersetzt die Funktion farfree oder _free.
-
- @kw_farmalloc
- void far *kw_farmalloc(size);
-
- ■ Parameter:
-
- size_t size; Anzahl Bytes
-
- ■ Beschreibung:
-
- Die Funktion kw_farmalloc allokiert eine Speicherblock der Größe size
- im Far Heap. Diese Funktion ersetzt die Funktion farmalloc oder _fmalloc.
-
- @kw_free
- void kw_free(*ptr);
-
- ■ Parameter:
-
- void *ptr; Zeiger auf Speicherblock im Heap
-
- ■ Beschreibung:
-
- Die Funktion kw_free befreit einen zuvor mit kw_malloc allokierten
- Speicherblock. Diese Funktion ersetzt die Funktion free.
-
- @kw_malloc
- void far *kw_malloc(size);
-
- ■ Parameter:
-
- size_t size; Anzahl Bytes
-
- ■ Beschreibung:
-
- Die Funktion kw_malloc allokiert eine Speicherblock der Größe size
- im Heap. Diese Funktion ersetzt die Funktion malloc.
-
- @Mem_Display
- void Mem_Used(stream);
-
- ■ Parameter:
-
- FILE *stream; Ausgabekanal
-
- ■ Beschreibung:
-
- Die Funktion Mem_Display übergibt ein Belegungsprotokoll des
- dynaischen Speichers.
-